#include "ping.h"
#include <QDebug>

Ping::Ping(QString endereco_ip, int num_repeticoes, int tam_pacote) : Processo()
{
    this->process_name = "ping";
    #ifdef Q_OS_UNIX
    this->args.append("-c " + QString::number(num_repeticoes));
    this->args.append("-s " + QString::number(tam_pacote));
    #endif
    #ifdef Q_OS_WIN32
    this->args.append("-n " + QString::number(num_repeticoes));
    this->args.append("-l " + QString::number(tam_pacote));
    #endif
    qDebug () << this->args;
    this->args.append(endereco_ip);
    this->tempo_gasto = 0;
    this->numero_repeticoes = num_repeticoes;
    connect(this, SIGNAL(outputMesage(QString)), this, SLOT(processaOutput(QString)));
}

void Ping::processaOutput(QString mensagem)
{
    qDebug () << mensagem;
    if (mensagem.contains("time=")) {
        QString tempo = mensagem.split("time=").at(1);
        tempo = tempo.split(" ms").at(0);
        this->tempo_gasto += tempo.toFloat();
    }
}

float Ping::tempoMedio()
{
    return this->tempo_gasto/this->numero_repeticoes;
}
